# t.column  :titulo,                 :string, :null => false, :limit => 128
# t.column  :titulo_sanitizado,      :string, :null => false, :limit => 128
# t.column  :direccion,              :string, :null => false, :limit => 128
# t.column  :ciudad,                 :string, :null => false, :limit => 128
# t.column  :cp,                     :string, :null => false, :limit => 8
# t.column  :texto,                  :string, :null => false, :limit => 512
# t.column  :latitud,                :string, :null => false, :limit => 20
# t.column  :longitud,               :string, :null => false, :limit => 20


class Libreria < ActiveRecord::Base
  
  validates_presence_of     :titulo,             :message => 'falta el título'
  validates_presence_of     :texto,              :message => 'falta el texto de la ficha'
  validates_presence_of     :direccion,          :message => 'falta la dirección'
  
  # call_backs
  before_save   :initialize_nicetitle, :cargar_coordenadas
  
     
  
  protected
    def initialize_nicetitle
      if self.new_record?
        self.titulo_sanitizado = self.titulo.to_slug
      end
    end
    
    def cargar_coordenadas
      gg = GoogleGeocode.new APP_CONFIG['google_geo_api_key']

      location = gg.locate self.direccion

      self.direccion_google = location.address
      self.ciudad           = location.locality_name
      self.cp               = location.postal_code
      self.latitud          = location.latitude
      self.longitud         = location.longitude
    end
end